package com.ruoyi.interview.service;

import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;

public interface IQuestionGenerateService {
    /**
     *
     * @param positionName 岗位名称
     * @param number 问题个数
     * @param dimensions 考核维度 例如：【维度名称1（权重）】
     * @return
     */
    @UserMessage("根据职位名称{{positionName}}，生成{{number}}个面试问题，考核维度包括{{dimensions}}\n" +
            "请根据以下参数生成模拟面试问题，要求严格遵循指定的JSON格式输出：\n" +
            "\n" +
            "{\n" +
            "  \"questions\": [\n" +
            "    {\n" +
            "      \"dimension\": \"所属维度\",\n" +
            "      \"type\": \"问题类型(行为/技术/情景等)\",\n" +
            "      \"language\": \"中文\",\n" +
            "      \"text\": \"问题文本\",\n" +
            "      \"difficulty\": \"难度等级(1-5)\",\n" +
            "      \"sample_answer\": \"参考答案要点\"\n" +
            "    }\n" +
            "  ]\n" +
            "}\n" +
            "\n" +
            "生成要求：\n" +
            "1. 按指定维度及权重分布问题数量\n" +
            "2. 问题类型应包含行为面试题、技术/专业题、情景模拟题等\n" +
            "3. 难度应呈正态分布\n" +
            "4. 结果为JSON格式的字符串，不需要以markdown的方式生成，直接生成内容即可\n" +
            "5. 参考答案只需提供要点")
    String generateQuestion(@V("positionName") String positionName,@V("number") int number,@V("dimensions") String dimensions);

}
